/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controllers;

import java.util.HashMap;
import java.util.Map;
import models.Docente;
import models.SemestreAcademico;
import models.courseOption;
import models.horarioOption;
import play.mvc.Controller;

/**
 *
 * @author Administrador
 */
public class validarDisponibilidad extends Controller {

    static Map<Integer, horarioOption> hm_d = new HashMap<Integer, horarioOption>();
    static Map<Integer, courseOption> hm_c = new HashMap<Integer, courseOption>();

    public static void validarDisponibilidad() {

        //Aumetado  Herminio
        Docente DC = Docente.connect(firstController.username);
        SemestreAcademico SA = SemestreAcademico.find("order by id DESC").first();       
        if(SA==null){
            System.out.println("Esta Vacio.....");
            SA = new SemestreAcademico();
        }
    
        String username = firstController.username;

        Docente docente = Docente.find("byDoc_vcCodigo", username).first();

        hm_d.clear();
        hm_c.clear();
        
        Integer cont = 0;
        for (int i = 1; i < 85; i++) {
            String s = "checkbox" + i;
            if (params.get(s) != null) {
                cont = cont + 1;
            }
        }

        String mensaje = " ";
        String preferences = "";
        Integer tipo = 0;
        String dia = null;
        Integer hora = 0;
        String msj="ok";
        try{ 
            if (docente.cla_vcNombre.equals("Tiempo Completo") && cont < 30) {
            mensaje = "Docente a Tiempo Completo debe elegir por lo menos 30 horas";
            tipo = 1;
        } else {
            if (docente.cla_vcNombre.equals("Tiempo Parcial") && cont < 15) {
                mensaje = "Docente a Tiempo Parcial debe elegir por lo menos 15 horas";
                tipo = 1;
            }
        }

        if ((docente.cla_vcNombre.equals("Tiempo Completo") && cont >= 30) || (docente.cla_vcNombre.equals("Tiempo Parcial") && cont >= 15)) {
            tipo = 2;
            String dia_ant = null;
            Integer hora_ant = 0;
            String dia_ref = null;
            Integer hora_ref = 0;
            Boolean b = false;
            for (int i = 1; i < 85; i++) {
                String s = "checkbox" + i;
                if (params.get(s) != null) {
                    if (i > 0 && i < 15) {dia = "Lunes";hora = i + 7;}
                    if (i > 14 && i < 29) {dia = "Martes";hora = i - 7;}
                    if (i > 28 && i < 43) {dia = "Miercoles";hora = i - 21;}
                    if (i > 42 && i < 57) {dia = "Jueves";hora = i - 35;}
                    if (i > 56 && i < 71) {dia = "Viernes";hora = i - 49;}
                    if (i > 70 && i < 85) {dia = "Sabado";hora = i - 63;}

                    hm_d.put(i, new horarioOption(i,dia, hora));
                    if (b == false) {
                        dia_ref = dia;
                        hora_ref = hora;
                        dia_ant = dia;
                        hora_ant = hora;
                        b = true;
                    } else {
                        if (dia.equals(dia_ant) && (hora == hora_ant + 1)) {
                            dia_ant = dia;
                            hora_ant = hora;
                        } else {
                            mensaje = mensaje + dia_ref + " de " + hora_ref + " a " + (hora_ant + 1) + "\\n ";
                            dia_ref = dia;
                            hora_ref = hora;
                            dia_ant = dia;
                            hora_ant = hora;
                        }
                    }
                }
            }
            mensaje = mensaje + dia_ref + " de " + hora_ref + " a " + (hora_ant + 1) + "\\n ";

            for (int i = 1; i < 4; i++) {

                String facultad = "no especificado";
                String eap = "no especificado";
                String curso = "no especificado";
                String s;

                s = "select" + i;
                if (params.get(s).equals("Seleccionar") == false) {
                    facultad = params.get(s);
                }

                s = "select" + (i + 3);
                if (params.get(s).equals("Seleccionar") == false) {
                    eap = params.get(s);
                }

                s = "select" + (i + 6);
                if (params.get(s).equals("Seleccionar") == false) {
                    curso = params.get(s);
                }

                hm_c.put(i, new courseOption(facultad, eap, curso));
                preferences = preferences + "Curso " + i + " : " + facultad + " / " + eap + " / " + curso + "\\n";
            }
        }

        renderTemplate("disponibilidadHoraria/disponibilidad.html",DC,SA, mensaje, preferences, tipo, cont,msj);
        }catch (Exception e){
            redirect("/");
        }
        
    }
}
